package xyz.mumuwei.youthcourseserver.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;

/**
 * <p>
 * 
 * </p>
 *
 * @author mumuwei
 * @since 2022-02-19
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class Role implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 角色编码
     */
    @NotBlank(message = "角色编码不能为空！")
    private String code;

    /**
     * 角色名
     */
    @NotBlank(message = "角色名不能为空！")
    private String name;

    /**
     * 角色描述
     */
    private String remarks;

    /**
     * 图标
     */
    private String iconName;

    /**
     * 角色权限id字符串
     * ,分割
     */
    private String authorityId;

    /**
     * 角色id数组
     */
    @TableField(exist = false)
    private List<Integer> authIds = new ArrayList<>();

    /**
     * 状态: 0：正常,  1：锁定
     */
    private Integer state;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private String createTime;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateTime;

    /**
     * 逻辑删除: 0：正常,  1：删除
     */
    @TableLogic
    private Integer isDelete;


}
